No.
You need only one main()
method for the
Java virtual machine to use in starting your program.
class HelloObject { // method definition void speak() { System.out.println("Hello from an object!"); } } class HelloTester { public static void main ( String[] args ) { HelloObject anObject = new HelloObject(); anObject.speak(); } }
Above is a complete program which includes two class definitions.
The definition of class HelloObject
includes a method but no instance variables, so
objects of class HelloObject
have no instance variables.
The class does have a constructor but it is not
explicitly defined in the code
(this will be discussed further).
The definition of class HelloTester
contains only
the static main()
method.
When the main()
method starts, it constructs
a HelloObject
and then invokes that object's speak()
method.
If you are compiling and running Java from the command line,
the program can be put into one file.
Remember that name of the file must match the name of the class
that contains the main()
method.
Also remember that upper and lower case are important both
in the file name and in the class name.
If you are using an Integrated Development Environment (IDE) like BlueJ,
you may need to use separate files for each class.
Actually, with BlueJ you don't need a class to contain main()
.
You can run the HelloObject
directly from the IDE.
You may need to experiment with your environment.
Here is an example run:
C:\JavaCode>javac HelloTester.java C:\JavaCode>java HelloTester Hello from an object! C:\>